import { request } from '../../request/http.js';
import regeneratorRuntime from '../../lib/runtime/runtime.js';

//来到本页面获取地址缓存  获取购物车缓存      然后筛选选中的购物车商品，    重置cart address
//支付
// 1.获取缓存里token    如果没有token就跳转auth支付页面获取授权获取用户登陆
// 2.如果有token就将获取到数据暂时放在goods数组里 （id,count,price）
// 3.将支付需要的请求参数发送到后台：createOrder方法 请求头token   价格 地址 商品信息（id,count,price）等传后台去
// 4.发送到后台后，我们使用wx.showToast接口显示支付成功
// 5.然后获取缓存里cart，将没选中的过滤掉，重新存储购物车，好让回到购物车时显示         最后跳转会购物车
Page({
  data: {
    address: {},
    /*购物车数据*/
    cart: [],
    // 总价格
    totalPrice: 0,
    // 总数量
    totalNum: 0
  },

  onLoad: function (options) {
  },

  onShow: function () {
    // 获取本地存储的收货地址
    const address = wx.getStorageSync('address');
    // 获取缓存中购物车数据
    let cart = wx.getStorageSync('cart') || [];
    // 筛选数组
    cart = cart.filter(v => v.checked);
    this.setData({ cart, address })
    this.calculateToolData()    // 计算工具栏数据
  },
  // 计算底部工具栏的数据
  calculateToolData() {
    let totalPrice = 0, totalNum = 0, data = this.data.cart;
    data.forEach(item => {
      if (item.checked) {
        totalPrice += item.goods_price * item.goods_count;
        totalNum += item.goods_count;
      }
    })
    this.setData({ totalPrice, totalNum })
  },
  // 支付
  async handleOrderPay() {
    const token = wx.getStorageSync('token');
    //等一下如果没有得到openid就获取一下 像token一样
    const openid = wx.getStorageSync('OPENID');
    if (!token) {
      wx.navigateTo({ url: '/pages/auth/index' })
      return;
    }
    if(!openid){
      wx.navigateTo({ url: '/pages/authopenid/index' })
      return;
    }



    
    // 已经存在token, 创建订单
    let goods = [];
    this.data.cart.forEach(v => goods.push({
      goods_id: v.goods_id,
      goods_number: v.goods_count,
      goods_price: v.goods_price
    }))
    // console.log(openid);
    // console.log(JSON.stringify(goods));
    // console.log(this.data.totalPrice);

    const params = {
      name: 'createOrder',
      method: 'post',
      // header: { Authorization: token },
      header: {
        // 'Content-type': 'application/json'
      },
      data: {
        openid:openid,
        order_price: this.data.totalPrice,
        consignee_addr: this.data.address.detailedAddress,
        // goods:JSON.stringify(goods)
        goods: goods

      }
    }
    // 发送请求创建订单
    const res = await request(params)


    // 支付成功删除缓存已经购买的商品
    let cart = wx.getStorageSync('cart') || [];
    // 筛选数组
    cart = cart.filter(v => !v.checked);
    wx.setStorageSync('cart', cart);

    await wx.showToast({
        title: '支付成功仅演示',
        icon: 'success',
        duration: 3000,
        mask: true,
        success:function(){
          setTimeout(function(){
            wx.switchTab({
              url: '../cart/index',
            })
          }, 1000)       

        }
      })
    
    
  },
})